package com.njust.service;

import com.njust.domain.dto.EquipmentDTO;
import com.njust.domain.dto.EquipmentPageQueryDTO;
import com.njust.domain.dto.RequestDTO;
import com.njust.domain.dto.SolutionDTO;
import com.njust.domain.vo.PageQueryVO;
import org.apache.http.HttpResponse;

import javax.servlet.http.HttpServletResponse;

/**
 * @Author: Grtiop
 * @Description: 设备相关
 * @DateTime: 2024/11/15 下午2:31
 **/
public interface EquipmentService {

    /**
    * @Description
    * @param equipmentPageQueryDTO
    * @return com.njust.domain.vo.PageQueryVO
    * @Author Grtiop
    * @Date 2024/11/15
    */

    PageQueryVO pageQuery(EquipmentPageQueryDTO equipmentPageQueryDTO);


    /**
    * @Description
    * @param equipmentDTO
    * @return int
    * @Author Grtiop
    * @Date 2024/11/15
    */

    int addEquipment(EquipmentDTO equipmentDTO);

    /**
    * @Description
    * @param solutionDTO
    * @return int
    * @Author Grtiop
    * @Date 2024/11/15
    */

    int addSolution(SolutionDTO solutionDTO);

    /**
    * @Description
    * @param solutionDTO
    * @return int
    * @Author Grtiop
    * @Date 2024/11/15
    */

    int updateSolution(SolutionDTO solutionDTO);

   /**
   * @Description
   * @param equipment_id
   * @return com.njust.domain.vo.SolutionVO
   * @Author Grtiop
   * @Date 2024/11/15
   */


    PageQueryVO searchSolution(int equipment_id);

    /**
    * @Description
    * @param solution_id
    * @return int
    * @Author Grtiop
    * @Date 2024/11/15
    */

    int deleteSolution(int solution_id);

    /**
    * @Description
    * @param requestDTO
    * @return int
    * @Author Grtiop
    * @Date 2024/11/15
    */

    int addRequest(RequestDTO requestDTO);

    /**
    * @Description
    * @param equipment_procurement_id
    * @return int
    * @Author Grtiop
    * @Date 2024/11/15
    */

    int updateStatus(int equipment_procurement_id);

    /**
    * @Description
    * @param page
    * @param pageSize
    * @return int
    * @Author Grtiop
    * @Date 2024/11/16
    */
    PageQueryVO pageQueryProcurement(int page, int pageSize);

    /**
    * @Description
    * @param project_id
    * @return void
    * @Author Grtiop
    * @Date 2024/11/16
    */
    void exportExcel(int project_id, HttpServletResponse response);

    void delete(int equipment_id);
}
